package com.ihrm.modules.sys.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 
 * 
 * @author gaogzhen
 * @email gaogzhen@foxmail.com
 * @date 2020-12-17 20:11:23
 */
@Data
@TableName("tb_user")
public class UserEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * id
	 */
	@TableId
	@ExcelProperty("编号")
	private String id;
	/**
	 * 手机号码
	 */
	@ExcelProperty("手机号")
	private String mobile;
	/**
	 * 用户名
	 */
	@ExcelProperty("用户名")
	private String username;
	/**
	 * md5密码
	 */
	@ExcelIgnore
	@JsonIgnore
	private String password;
	/**
	 * 盐
	 */
	@ExcelIgnore
	@JsonIgnore
	private String salt;
	/**
	 * 启用状态(0禁用,1启用)
	 */
	@ExcelIgnore
	private Integer enableState;
	/**
	 * 创建时间
	 */
	@ExcelIgnore
	private Date createTime;
	/**
	 * 部门id
	 */
	@ExcelIgnore
	private String departmentId;
	/**
	 * 入职时间
	 */
	@ExcelProperty("入职时间")
	private Date entryTime;
	/**
	 * 聘用形式
	 */
	@ExcelIgnore
	private Integer employmentForm;
	/**
	 * 工号
	 */
	@ExcelProperty("工号")
	private String jobNumber;
	/**
	 * 管理形式
	 */
	@ExcelIgnore
	private String managementForm;
	/**
	 * 工作城市
	 */
	@ExcelIgnore
	private String workingCity;
	/**
	 * 转正时间
	 */
	@ExcelIgnore
	private Date fullTime;
	/**
	 * 在职状态(0离职,1在职)
	 */
	@ExcelIgnore
	private Integer incumbencyState;
	/**
	 * 企业id
	 */
	@ExcelIgnore
	private String companyId;

	/**
	 * 角色集合
	 */
	@ExcelIgnore
	@TableField(exist = false)
	private List<RoleEntity> roles;

	/**
	 * 部门信息
	 */
	@ExcelIgnore
	@TableField(exist = false)
	private String departmentName;

	/**
	 * 公司信息
	 */
	@ExcelIgnore
	@TableField(exist = false)
	private String companyName;
}
